<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 变量可以存任何类型的数据 - 对象、数组、函数...
        // let a = 123;


        // 函数可以传参 - 传到小括号里 - 形参 - 什么都能传 - 和 变量一样！
        // 形参可以接收任何类型的数据
        // let fn = function(a) {
        //     // console.log(a);

        //     // 用小括号调用函数 - 代表执行 - 
        //     // 尊严：一个基本的函数，具有被调用和传参的权利。
        //     a(() => {
        //         console.log(456);
        //     })
        // }

        // // 调用函数的小括号：实参
        // fn(function(n) {
        //     // console.log(n);
        //     n()
        // })


        // let a = 123;


        // 函数 都是有结果的！ - 每个函数 都追求一个结果。 - 人 ：都有目标。
        // 每一个工厂都有一个产品。
        // 函数的返回值：可以返回任何数据类型。
        // function fn() {
        //     return 123;
        // }

        // console.log(fn());

        // 函数其实就是可以用来声明变量的！
        // 变量：什么都能存 
        // let a = (function(b) {
        //     // 加工数据
        //     // return 122 + b;
        //     // return [1, 2, 3]
        //     // return {
        //     //     name: 'laowang'
        //     // }
        //     return () => {
        //         console.log('123');
        //     }
        // })(1)

        // console.log(a);
        // a()

        // let obj = {
        //     name: 123
        // }

        // obj.name = 456;
        // console.log(obj.name);

        // let obj = {
        //     name: function() {
        //         return [{
        //             age: function() {
        //                 return function(n) {
        //                     n(123)
        //                 }
        //             }
        //         }]
        //     }
        // }

        // obj.name()[0].age()(function(num) {
        //     console.log(num);
        // })



        // 老王 今天 18岁 在成都 的 2023年7月5日 跑了 5公里
        let arr = [
            '老王', {
                run: function() {
                    return {
                        age: 18,
                        time: [
                            "成都",
                            "2023年7月5日",
                            "五公里",
                            function() {
                                return (cb) => {
                                    // 补充参数
                                    // console.log("123");
                                    cb()
                                }
                            }
                        ]
                    }
                }
            }
        ];
    </script>
</body>

</html>